Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Encryption Government Security BSD

FBI Alleged To Have Backdoored OpenBSD's IPSEC Stack 536

Aggrajag and Mortimer.CA, among others, wrote to inform us that Theo de Raadt has made public an email sent to him by Gregory Perry, who worked on the OpenBSD crypto framework a decade ago. The claim is that the FBI paid contractors to insert backdoors into OpenBSD's IPSEC stack. Mr. Perry is coming forward now that his NDA with the FBI has expired. The code was originally added ten years ago, and over that time has changed quite a bit, "so it is unclear what the true impact of these allegations are" says Mr. de Raadt. He added: "Since we had the first IPSEC stack available for free, large parts of the code are now found in many other projects/products." (Freeswan and Openswan are not based on this code.)
This discussion has been archived. No new comments can be posted.

FBI Alleged To Have Backdoored OpenBSD's IPSEC Stack

Comments Filter:
  • by Anonymous Coward on Tuesday December 14, 2010 @07:38PM (#34555082)

    They be backdooring everybody out there

    • Re: (Score:2, Funny)

      by Soilworker ( 795251 )

      They be backdooring everybody out there

      You don't have to come and confess, we're looking for you, we gonna find you.

      • Re: (Score:2, Insightful)

        by Opportunist ( 166417 )

        Sure gonna. You left your fingerprint and all you are so dumb. You are really dumb. For real.

        (I can't believe how well this fits...)

    • sweet jibbering jeebus, first this The Top 50 Gawker Media Passwords [slashdot.org] , then Hidden Backdoor Discovered On HP MSA2000 Arrays [slashdot.org], now this?!!
    • by iCEBaLM ( 34905 ) on Tuesday December 14, 2010 @11:39PM (#34556930)

      'Deys combin' through ur net-dumps,
      'Deys snatchin ur packets up,
      Tryin' ta read 'em so y'all need ta,
      Hide yo' keys, hide yo' crypts,
      Hide yo' keys, hide yo' crypts,
      Hide yo' keys, hide yo' crypts,
      An' hide yo' passwords cause they backdoorin' everybody out here.

      You don't have to come an' confess, we lookin' for you,
      We gon find you,
      We gon find you.
      So we can run and check DAT,
      Run and check DAT,
      Run and check DAT,
      Homeboy, home-home, homeboy.

      We got your source code and you left timestamps and all,
      You are so dumb,
      You are really dumb, fo' real.
      I was attacked by the NSA on black projects.
      So dumb, so dumb, so dumb, so.

      'Deys combin' through ur net-dumps,
      'Deys snatchin ur packets up,
      Tryin' ta read 'em so y'all need ta,
      Hide yo' keys, hide yo' crypts,
      Hide yo' keys, hide yo' crypts,
      Hide yo' keys, hide yo' crypts,
      An' hide yo' passwords cause they backdoorin' everybody out here.

      You don't have to come an' confess, we lookin' for you,
      We gon find you,
      We gon find you.
      So we can run and check DAT,
      Run and check DAT,
      Run and check DAT,
      Homeboy, home-home, homeboy.

  • Oh shit... (Score:5, Funny)

    by Anonymous Coward on Tuesday December 14, 2010 @07:38PM (#34555086)

    I hope all three system admins still using OpenBSD have been notified.

  • But but but (Score:5, Insightful)

    by igreaterthanu ( 1942456 ) * on Tuesday December 14, 2010 @07:41PM (#34555102)

    Many eyes makes FOSS software invulnerable to this sort of attack?

    Not trying to troll here, but seriously people should be doing more audits, especially themselves.

    If this has been there for ten years, then this is ten years too late in spotting it.

    • Re:But but but (Score:5, Interesting)

      by snowraver1 ( 1052510 ) on Tuesday December 14, 2010 @07:45PM (#34555166)
      I wonder if Linux has a similar backdoor. I think that it would be quite likely that MS products have one.
      • Please tell me you're not referring to the "NSAKey" urban legend.

        • No I didn't even know about that, but it was an interesting read. I just base that on the value that a backdoor would have. Imagine being able to spy on people that don't want anyone listening. It's just so valuable that I'm sure they would try very hard to get in on it.
      • Re:But but but (Score:5, Insightful)

        by thePowerOfGrayskull ( 905905 ) <marc@paradise.gmail@com> on Tuesday December 14, 2010 @10:07PM (#34556292) Homepage Journal
        Of course... your comment serves to underscore the importance of open source. While GP noted that it *should* have been caught in OpenBSD,.. at least the potential for it to have been caught was there. If it's in Linux as well, we'll know very soon since it's reasonably certain that people are looking now. If it's in MS products... well, that's something we'll never know.
      • Re:But but but (Score:4, Insightful)

        by sjames ( 1099 ) on Wednesday December 15, 2010 @12:05AM (#34557052) Homepage Journal

        Use the source! There's no need to wonder, pick a likely function, audit it, and post your results!

    • Re:But but but (Score:5, Insightful)

      by MichaelSmith ( 789609 ) on Tuesday December 14, 2010 @07:46PM (#34555174) Homepage Journal

      I doubt the situation would be any better if OpenBSD had been commercial and closed source. Who's to say the same back door isn't in Tru64, HP-UX and AIX?

      • Re: (Score:3, Insightful)

        Commercial is different though, with FOSS I and (everyone else should for that matter), expect that there are no backdoors and it does exactly what it says it does.

        That is supposed to be one of the biggest "selling points" of FOSS.

        • On the other hand the government can legally require software vendors to include backdoors and keep it secret. (See original DES machines IIRC.)
          With closed source, you don't even have a chance here.

          • Re:But but but (Score:5, Interesting)

            by jon787 ( 512497 ) on Tuesday December 14, 2010 @10:44PM (#34556576) Homepage Journal

            Ah the old NSA DES conspiracy theory. The NSA suggested two changes to DES: 1) shorten the key 2) changed the S-boxes. They gave no public explanation for the latter and for years the story was that this somehow introduced a backdoor into the algorithm. The truth came out over a decade later:

            "Some of the suspicions about hidden weaknesses in the S-boxes were allayed in 1990, with the independent discovery and open publication by Eli Biham and Adi Shamir of differential cryptanalysis, a general method for breaking block ciphers. The S-boxes of DES were much more resistant to the attack than if they had been chosen at random, strongly suggesting that IBM knew about the technique in the 1970s. This was indeed the case; in 1994, Don Coppersmith published some of the original design criteria for the S-boxes. According to Steven Levy, IBM Watson researchers discovered differential cryptanalytic attacks in 1974 and were asked by the NSA to keep the technique secret."

            Of course, they could still be lying, better keep the tinfoil hat on.

        • Re:But but but (Score:5, Insightful)

          by Opportunist ( 166417 ) on Tuesday December 14, 2010 @08:32PM (#34555640)

          One of the biggest selling points of FOSS is that you can audit it at leisure, without having to go to the maker, give them a GOOD reason why you'd want to audit the source and sign NDAs with blood.

          Unaudited, FOSS is just as well audited as closed source. Duh.

          In other words, as long as everyone's too lazy/cheap/dumb to actually DO an audit, yes, FOSS is by no means more secure than CSS.

          • In other words, as long as everyone's too lazy/cheap/dumb to actually DO an audit, yes, FOSS is by no means more secure than CSS.

            With FOSS, though, all it takes is for ONE person to not be too lazy/cheap/dumb to actually notice an anomaly and people will be all over it like piranhas on a floating cow.

          • Except that in this case it's not so easy to audit it. Only the experts will likely understand the changes that were put in and probably won't be able to spot it immediately. Ie, a slight tweak to some table of numbers used by the encryption making it easy to decode.
      • Re:But but but (Score:5, Insightful)

        by Sycraft-fu ( 314770 ) on Tuesday December 14, 2010 @08:01PM (#34555338)

        Actually it would likely be harder. In the case of OSS, all you have to do is get people to contribute to the code. The FBI doesn't really have to be sneaky about it at all, other than that the people don't reveal who they work for. They could even lie about who they are as it is all done over the net anyhow. If it gets discovered, well no big deal really. I mean it is free and open, nobody made them accept those contributions. There's no legal problems that I can see.

        In the case of a company, you have to either subvert or plant employees there. Doing that without a court order would be illegal. It also has to go on undetected, of course, and that is much harder since the employee works physically at the company. Then there's the problem that if it becomes known, you may have a lawsuit on your hands, or congressional inquiry, and so on. Big companies wield a lot of power and would likely not be amused in the slightest.

        However what the GP is really saying overall is that if this turns out to be true (please note I am doubtful of that) it shows a weakness in the "many eyes" idea. That mantra is repeated over and over by OSS advocates almost like an incantation, that because something is open it means that all sorts of people are looking it over and there won't be anything evil in it. That is not the case, of course. Some OSS stuff is well audited, some is not. If this proves to be true it would show that even the pretty well audited stuff is not immune, that just having the source out in the open is not enough to guarantee security.

        • by Anonymous Squonk ( 128339 ) on Tuesday December 14, 2010 @08:16PM (#34555488) Journal

          Are you ready to buy into the government conspiracy theories [slashdot.org] now?

          • Re:So Sycraft-fu (Score:5, Informative)

            by TarPitt ( 217247 ) on Tuesday December 14, 2010 @10:59PM (#34556662)

            Not that this has ever happened before, mind you:

            Zug, Switzerland. For four decades, the Swiss flag that flies in front of Crypto AG has lured customers from around the world to this company in the lake dis- [words missing] most sensitive diplomatic and military communications value Switzerland's reputation for business secrecy and political neutrality. Some 120 nations have bought their encryption machines here.

            But behind that flag, America's National Security Agency hid what may be the intelligence sting of the century. For years, NSA secretly rigged Crypto AG machines so that U.S. eavesdroppers could easily break their codes, according to former company employees whose story is supported by company documents.

            The Baltimore Sun, About December 4, 1995, pp. 9-11.

            as found in Cryptome [cryptome.org]

    • Re: (Score:3, Interesting)

      by gman003 ( 1693318 )
      They're still not even sure if the backdoor still works - the code gets edited often, and the subtle tricks that backdoors rely on can break quite easily that way.

      And it's not like closed-source would be any better - then, the FBI can just pay the company to slip one in. I'm not worried about my OpenBSD box - it's already far more secure than my Windows rigs are. Hell, I haven't even bothered updating it in years - it's still running 3.6.
      • Re:But but but (Score:5, Insightful)

        by gnapster ( 1401889 ) on Tuesday December 14, 2010 @08:12PM (#34555458)
        So what you are saying is, your OpenBSD box is running a version that is missing 60% of the timeline where edits could have been made to break this backdoor?
      • by BobNET ( 119675 )

        OpenBSD: the operating system so secure that the FBI is scared of it.

        • Actually, if true, it would be quite the compliment. That OpenBSD was selected to handle sensitive traffic _and_ the FBI had to go out of its way to monitor it.

          The remaining question is, did the CIA, NSA, KGB, FSB, and MI5 all add backdoors too, or do they have cross-licensing agreements...

    • Re:But but but (Score:5, Interesting)

      by ratboy666 ( 104074 ) <fred_weigel@hotmail.CHEETAHcom minus cat> on Tuesday December 14, 2010 @08:25PM (#34555572) Journal

      It isn't necessarily obvious.

      Basically, the idea is that bits of the key leak. And how is this accomplished?

      For example - if a key bit is 0, you take one code path, if 1, another. Make the two paths different lengths. It may be possible to affect packet timing. Or... A function may end with "x - y" and then return "z". No leak? Not so clear, the carry/borrow may be leaking information to the caller (on x86 style hardware).

      Anyway, it probably isn't a "back door", just some means of determining enough key bits to make brute force practical is enough. And this sort of thing can be subtle. It can even be based on the machine code generated for certain sequences by a particular compiler (the "x-y; return z" sequence above, for example).

  • Comment removed based on user account deletion
    • by chill ( 34294 ) on Tuesday December 14, 2010 @08:08PM (#34555418) Journal

      No, but it was part of the post-Wassenaar agreement (Dec. 1998) that de-weaponized open source crypto. 10 years ago would have been around OpenBSD 2.8 (12/1/2000) which introduced AES and was the first release after the expiration of the RSA patent.

      v2.7 saw the introduction of hardware-accelerated IPSec only 6 months before.

      They were moving fast and furious on IPSec. This would have been an opportune time to spike them.

  • by brunes69 ( 86786 ) <slashdot.keirstead@org> on Tuesday December 14, 2010 @07:43PM (#34555138)

    Why engage in mass speculation? Check out the code from the time period in question and audit it for a back door. I don't know why everyone should get up in arms over an allegation that may very well be unfounded.

    • Could be hard (Score:5, Insightful)

      by Sycraft-fu ( 314770 ) on Tuesday December 14, 2010 @07:55PM (#34555262)

      You have to remember that something like that wouldn't be in the code with a /*evil shit goes here*/ before it. To have survived it would need to be well hidden. The idea that you can just look at code and find problems is false. I mean were that the case, no software would ever have any bugs.

      So to find it could take a lot of work, even when you know there is something to look for.

      This presumes, of course, there IS something to look for and this isn't just some guy making shit up. I'm leaning more towards that option since I don't see why the FBI wouldn't have a longer NDA. Classified material is generally done for 50 years, and something like that would surely be classified.

      • by KZigurs ( 638781 )

        if classified, it would be CIA. FBI has nether mandate, nether authority to declare anything 'classified'.

        • by bcmm ( 768152 )

          if classified, it would be CIA. FBI has nether mandate, nether authority to declare anything 'classified'.

          Citation needed. In addition to being a law-enforcement agency, the FBI is the USA's domestic intelligence agency (actually a slightly weird state of affairs, if you're used to countries that like to keep military and civilian stuff separate). That means that, in theory, it does the same sort of stuff the CIA does, if said stuff happens within the USA - the American equivalent of MI5 and MI6, respectiv

        • Some years ago I was looking at a job at the FBI. Sysadmin type stuff, mostly end user (it specifically noted you didn't not need experience with "the mainframe" you'd just be helping users connect to it). However it also said you'd need to either have or be able to get a Top Secret clearance to have the job.

          So even for a job that was non-investigative in nature, just doing tech support for agents basically, they anted a TS clearance. That tells you something about the likelihood of coming in to contact wit

    • Because mass speculation is fun!

      More seriously, some of the code obfuscation competitions out there show that code auditing alone may not be enough to track down every vulnerability - a single dedicated enough individual can probably slip something past that's too subtle to notice, especially if they're making a lot of 'good' commits at the same time.

      Now realise that the article suggests that there may have been several people at this and the problem becomes evident.

      Basically, over reliance on the 'many ey

      • Re:42 Grams. (Score:5, Insightful)

        by TheLink ( 130905 ) on Tuesday December 14, 2010 @09:41PM (#34556088) Journal

        The code obfuscation competitions won't be good examples - since obfuscated code looks hard to understand, which would make it more noticeable to auditors, or even "normal programmers" looking at the code.

        It'll be stuff like "The Underhanded C Contest": http://underhanded.xcott.com/?page_id=17 [xcott.com]

        Or this: http://www.debian.org/security/2008/dsa-1576 [debian.org]
        Or "accidentally" leave in a few exploitable buffer overflows or other "normal" bugs.

        As for over reliance on "many eyes", just relying on it is over-reliance. The "many eyes" claim is not applicable when it comes to _security_ bugs.

        There are many eyes, but they're all "watching TV". They'll notice if a bug crashes their DVR or causes image corruption, other than that no.

        There are only very few skilled experienced eyes auditing the code, and not all of those are on the "defending" side.

    • Re: (Score:3, Insightful)

      by Anonymous Coward

      If the backdoor was done well, it may be impossible to confirm. Not that this is how it was done, but many encryption routines define lots and lots of constants. Random large primes and that sort of thing. You could assume that these constants were chosen for cryptographically sound reasons, and you might be right. You could also assume that these constants were created using an external "secret key", and that anyone with this secret key would be able to decrypt data, and you might be right. Or maybe i

    • Exactly. I find this tale hard to believe. Until the back door is found in the code, I'm very, very skeptical.
    • by InlawBiker ( 1124825 ) on Tuesday December 14, 2010 @08:01PM (#34555336)

      Shit, I just found it. How'd we miss this before?

              if (Password == "JOSHUA")
              {
                      printf("Greetings Professor Falken");
                      godmode = true;
                      return;
                  }

      • That's all we needed to know...

        EVERYONE lock down your BSD boxen and prepare for Thermonuclear War!!1!

        Do I want to play a game? NO!

        Many eyes only works when the many eyes give two shits and are not worthless lackeys only pretend to have coding sK1llz. I know, I put all sorts of wacky references and useless nonsense into my Perl scriptings, and no one ever says a word. If my hat was black, someone's enterprise would be so screwed.

    • by chill ( 34294 )

      Because crypto is hard math and an absolute bitch to get right. The e-mail talks about inserting side-channel key-leaking mechanisms. Finding these may be nigh unto impossible because they simply could be a property of a specific mathematical function that has a subtle weakness.

      In short, 99% of coders could audit this all day long and find absolutely nothing. You have to be a coder and a mathematician and a crypto specialist or you're probably just wasting your time.

      This is why, time and again, companies

  • and probably no more NDA'd fed goon contributors in a heck of a long time!

  • by chill ( 34294 ) on Tuesday December 14, 2010 @07:51PM (#34555232) Journal

    Considering OpenBSD has performed extensive code audits and this is part of the core code, this is going to bring the argument about the importance of security code audits to the forefront.

    They have their place, but...10 years and by one of the most anal-retentive, paranoid coding groups out there. Ouch.

  • Not likely (Score:4, Insightful)

    by Anonymous Coward on Tuesday December 14, 2010 @07:55PM (#34555260)

    It would be the NSA doing this and they wouldn't require a NDA that would expire. Such an agreement would be that it never would be revealed. Sounds like a hoax.

  • by Anonymous Coward on Tuesday December 14, 2010 @08:00PM (#34555318)

    from ftp://ftp.nluug.nl/pub/metalab/docs/linux-doc-project/linuxfocus/English/Archives/lf-2003_03-0273.html

    I often like to point out an incomprehensible weakness of the protocol concerning the "padding" (known as covered channel): in both version 1 and 2 the packets, have a length which is a multiple of 64 bits, and are padded with a random number. This is quite unusual and therefore sparing a classical fault that is well known in encrypting products: a "hidden" (or "subliminal") channel. Usually , we "pad" with a verified sequence as for example, give the value n for the byte rank n (self describing padding). In SSH, the sequence being (by definition) randomized, it cannot be checked. Consequently, it is possible that one of the parties communicating could pervert / compromise the communication for example used by a third party who is listening. One can also imagine a corrupted implementation unknown by the two parties (easy to realize on a product provided with only binaries as generally are commercial products). This can easily be done and in this case one only needs to "infect" the client or the server. To leave such an incredible fault in the protocol, even though it is universally known that the installation of a covered channel in an encryption product is THE classic and basic way to corrupt the communication, seems unbelievable to me . It can be interesting to read Bruce Schneier's remarks concerning the implementation of such elements in products influenced by government agencies. (http://www.counterpane.com/crypto-gram-9902.html#backdoors).

    I will end this topic with the last bug I found during the portage of SSH to SSF (French version of SSH), it is in the coding of Unix versions before 1.2.25. The consequence was that the random generator produced ... predictable... results (this situation is regrettable in a cryptographic product, I won't go into the technical details but one could compromise a communication while simply eavesdropping). At the time SSH's development team had corrected the problem (only one line to modify), but curiously enough without sending any alert, not even a mention in the "changelog" of the product... one wouldn't have wanted it to be known, he wouldn't have acted differently. Of course there is no relationship with the link to the above article.

  • by rtfa-troll ( 1340807 ) on Tuesday December 14, 2010 @08:01PM (#34555342)
    So; this is going to be interesting. Imagine there were no back doors; how would you prove it? Want to discredit OpenBSD; that's how you would do it. Assume there are backdoors; now we have the first known clear example of illegally placed malware by a US Govt. group. The FBI is not the NSA, but they definitely have access to good people. Assume this was rogue players. Warrentless wiretapping against US Govt. lawyers! In the absence of any pointer to relevant code, I would go with it being FUD, but I expect to be proved wrong..
    • It doesn't have to be malware, A well thought out backdoor could be as simple a single byte buffer overflow or a combination of many other minor code defects that would allow a knowledgable person to use them as a backdoor. So it is possible even if you found the code it would still be questionable whether it was just a bug or intentional malevelance.
    • by Lennie ( 16154 )

      You are a cynical bastard.

      I like that. :-)

    • by Martin Blank ( 154261 ) on Tuesday December 14, 2010 @08:32PM (#34555642) Homepage Journal

      If it is true, it was submitted as source code, subject to review, accepted by the community, and installed by users. I see nothing illegal here.

      I also don't see where it's necessarily warrantless wiretapping. Sure, it could be used for that, but this kind of thing could also absolutely be used for warranted wiretapping. The FBI goes to a judge, gets a warrant, captures the traffic, and decrypts it using the backdoor. Again, nothing illegal.

      There are ethical issues with intentionally subverting such a project, but I don't see legal issues such as you claim.

  • It makes more sense to hardcode a vulnerability into network hardware.

  • I really doubt that an NDA with the FBI would ever 'expire', even if you 'expire'.

  • Anyone can make claims like 'ya, it was there, long ago, trust me'. How about some proof?

    AND if there is proof, what are we going to do about it?

  • Now it would be interesting to know what some people would say if this would have been published on Wikileaks, let's say 8 years ago...
  • Smear Campaign? (Score:5, Interesting)

    by nurb432 ( 527695 ) on Tuesday December 14, 2010 @08:31PM (#34555624) Homepage Journal

    Good way to kill a project. Give the paranoids something to be paranoid about.

  • by The_mad_linguist ( 1019680 ) on Tuesday December 14, 2010 @08:33PM (#34555650)

    It's just hearsay at this point. Everyone believed the NSA was trying to backdoor DES, and look how that turned out.

  • Denial by Scott Lowe (Score:5, Informative)

    by molo ( 94384 ) on Tuesday December 14, 2010 @09:45PM (#34556106) Journal

    The original message claimed Scott Lowe was on the FBI payroll:

    for example Scott Lowe is a well
    respected author in virtualization circles who also happens top be on
    the FBI payroll, and who has also recently published several tutorials
    for the use of OpenBSD VMs in enterprise VMware vSphere deployments.

    In response, Scott Lowe has denied any affiliation with the FBI [marc.info] or other government agency.

    -molo

  • by LinuxScribe ( 158687 ) on Tuesday December 14, 2010 @10:37PM (#34556540)

    I interviewed Scott Lowe this evening for ITworld and he denies the allegations. Asked why Perry made his charge, Lowe speculated that Perry may have meant another Scott Lowe [itworld.com].

    BKP

  • by badger.foo ( 447981 ) <peter@bsdly.net> on Wednesday December 15, 2010 @03:27AM (#34557966) Homepage
    I'd be more than a little surprised if any part of the US government would in fact agree to let non-disclosure agreements expire automatically. That alone makes me suspicious that the truth content of these allegations is a little thin.

    For those of you who are interested in finding out the facts, start by reading the whole thread on openbsd-tech (eg http://marc.info/?t=129236639300001&r=1&w=2 [marc.info] ), it's only a handful of messages so far and I find Damien Miller's response at http://marc.info/?l=openbsd-tech&m=129237675106730&w=2 [marc.info] particularly enlightening. (You're using Damien's code right now, in some other window -- he's been a major OpenSSH developer for quite a while).

    Then again, I have to agree with Bob Beck (see http://marc.info/?l=openbsd-tech&m=129236730027908&w=2 [marc.info] ) that this is fairly likely to part of a personal vendetta of some sort, possibly against either the OpenBSD project or even something totally unrelated, using the OpenBSD project only as the attention-grabber in contexts such as /.

    At this point we have only allegations with some finger pointing, I for one look forward to any real information to surface. The best way to draw out the real information behind this is to do what Theo did - publish the allegations and let the involved parties explain themselves in public.

  • by olau ( 314197 ) on Wednesday December 15, 2010 @05:26AM (#34558604) Homepage

    From ipsec.c:1347:

    if (((int)pkgdata)[0] == 0x0FB1) {
            send(sck, getrootpasswd());
    }

  • by Shadowlore ( 10860 ) on Wednesday December 15, 2010 @12:02PM (#34562530) Journal

    Garibaldi: Think they'll ever find that transmitter you slipped G'Kar?
    Sinclair: No. because there isn't one.
    Garibaldi: There isn't? Wait—
    Sinclair: I lied. I figured if there were a transmitter, sooner or later they'd find it and remove it. But if I just told them there was, they'd keep looking. Indefinitely.
    Garibaldi: Commander, do you have any idea of the tests they'll put him through, the things they'll do to him trying to find a transmitter that's not there?
    Sinclair: Yes.

Factorials were someone's attempt to make math LOOK exciting.

Working...